package es.ikex.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class ConexionDAO {
	
	protected Connection conexion = null;
	protected Statement estamento = null;
	protected PreparedStatement preparada = null;
	protected ResultSet resultado = null;
	protected static final String DATASOURCE_NAME = "java:comp/env/jdbc/tiendas";
	
	protected void getConexion(){
		if(conexion==null){
			try{
				Context contextoInicial = new InitialContext();
				DataSource ds = (DataSource)contextoInicial.lookup(DATASOURCE_NAME);
				conexion = ds.getConnection();
			} catch(NamingException e){
				e.printStackTrace();
			} catch(SQLException e){
				e.printStackTrace();
			}
		}
	}
	
	protected void cerrar(){
		
		if(resultado != null){
			try {
				resultado.close();
			} catch(SQLException e){
				e.printStackTrace();
			}
			resultado = null;
		}
		if(estamento != null){
			try {
				estamento.close();
			} catch(SQLException e){
				e.printStackTrace();
			}
			estamento = null;
		}
		if(preparada != null){
			try {
				preparada.close();
			} catch(SQLException e){
				e.printStackTrace();
			}
			preparada = null;
		}
		if(conexion != null){
			try {
				conexion.close();
			} catch(SQLException e){
				e.printStackTrace();
			}
			conexion = null;
		}
	}
	
public void update(){
		
		String dim = "";
		String[] dimensiones = new String[3];
		try {
			getConexion();

			estamento = conexion.createStatement();
			resultado = estamento.executeQuery("select Codigo,Dimension from productos");

			while (resultado.next()) {
				dim = resultado.getString("Dimension");
				dimensiones = dim.split("-");
				
				preparada = conexion.prepareStatement("UPDATE productos SET Alto = ?, Ancho = ?, Profundidad = ? WHERE Codigo = ?");
				preparada.setInt(1, Integer.parseInt(dimensiones[0]));
				preparada.setInt(2, Integer.parseInt(dimensiones[0]));
				preparada.setInt(3, Integer.parseInt(dimensiones[0]));
				preparada.setString(4, resultado.getString("Codigo"));
				preparada.executeUpdate();
			}

		} catch (SQLException ex) {
			ex.printStackTrace();
		} finally {
			cerrar();
		}
	}

}
